# 导入 tkinter 库
import tkinter as tk
import random

# 定义关键词和机器人回复
query = {
    '痛苦': ['痛苦', '难过', '悲伤', '伤心'],
    '失忆': ['不记得', '忘记了', '忘了', '不知道'],
}
robot = {
    '理解': {'理解': 100, '我也很难过': 90, '嗯': 80, '说出来就好了': 70, '不怕有我在呢': 60},
    '放松': {'放松下': 100, '不着急': 90, '慢慢来': 80},
    '询问': {'还有吗?': 100, '然后呢?': 120, '什么问题能说说吗？': 90, '能否讲一讲？': 100, '说说吧': 100}
}
QA = {'痛苦': robot["理解"], '失忆': robot["放松"]}
# 超时设置
timer = 0
# 主人
def send():
    global timer
    timer = 0
    msg = input.get()
    input.delete(0, tk.END)
    tallk.insert(tk.END,  msg + "\n","master")
    # 机器人回复，寻找关键词
    for k in QA:
        for kk in query[k]:
            if kk in msg:
                robot_msg = random.choices(list(QA[k].keys()), weights=list(QA[k].values()))[0]
                tallk.insert(tk.END,robot_msg+"\n")

# 定时器
def get_time():
    global timer,root
    timer += 1
    # 如果患者长时间沉默，机器人则主动提问
    if timer > 10:
       que = random.choices(list(robot['询问'].keys()), weights=list(robot['询问'].values()))[0]
       tallk.insert(tk.END,que+"\n") 
       timer = 0
    root.after(1000, get_time)

# 初始化 tkinter 窗口
root = tk.Tk()
root.title("心理康复机器人")

# 创建聊天对话框
tk.Label(root, text="我很擅长和有焦虑症的朋友聊天。你可以向我说说你的情况吗？你放心这是我们的保密合同！").pack(pady=10)
tallk = tk.Text(root, width=50, height=14, bg="#CCB")
tallk.pack(fill=tk.BOTH, expand=True)
# 简单样式
tallk.tag_configure("master", justify=tk.RIGHT,foreground="#06E")
input = tk.Entry(root, width=65)
input.pack(side="left")
tk.Button(root, text="发送", command=send).pack(side="right")

get_time()

root.mainloop()